<?php
include_once 'evento.php';

class Missa extends Evento {
    
	protected $musicas_missa, $tipo_missa;
	
	public function Missa() {
		$this->musicas_missa = array();
		$this->tipo = "Missa";
		$this->tabela = "Missa";
	}
	
	public static function tempos_liturgicos() {
		return array("Comum", "Quaresma", "Advento");
	}
	
	public static function partes_da_missa($tempo) {
		$partes = array(
			"Comum" => array("entrada", "penitencial", "gloria", "aclamacao", "ofertorio", "santo", "amem", "pai_nosso", "paz", "cordeiro", "comunhao", "final"),
			"Quaresma" => array("entrada", "penitencial", "aclamacao", "ofertorio", "santo", "amem", "pai_nosso", "paz", "cordeiro", "comunhao", "final"),
			"Advento" => array("entrada", "velas", "penitencial", "aclamacao", "ofertorio", "santo", "amem", "pai_nosso", "paz", "cordeiro", "comunhao", "final")
		);
		return $partes[$tempo];
	}
	
	public static function label($parte) {
		$labels = array(
			"entrada" => "Canto de Entrada",
			"penitencial" => "Ato Penitencial",
			"gloria" => "Hino de Louvor",
			"aclamacao" => "Aclamação ao Evangelho",
			"ofertorio" => "Ofertório",
			"santo" => "Santo", 
			"amem" => "Amém",
			"pai_nosso" => "Pai Nosso",
			"paz" => "Canto de Paz",
			"cordeiro" => "Cordeiro de Deus",
			"comunhao" => "Comunhão",
			"final" => "Canto Final",
			"velas" => "Canto das Velas"
		);
		return $labels[$parte];
	}
	
	public function get_musicas_missa() {
		return $this->musicas_missa;
	}
	
	public function get_form() {
		return "form_missa.php?id=".$this->get_id();
	}
	
	public function get_musicas() {
		$musicas = array();
		foreach ($this->musicas_missa as $musica_missa) {
			if (isset($musica_missa)) {
				$musicas[] = $musica_missa->get_musica();
			}
		}
		return $musicas;
	}
	
	public function adicionar_musica($musica_missa) {
		if (array_key_exists($musica_missa->get_parte_missa(), $this->musicas_missa)) {
			$this->musicas_missa[$musica_missa->get_parte_missa()] = $musica_missa;
		}
	}
	
	public function adicionar_musicas($array_musicas) {
		foreach ($array_musicas as $musica_missa) {
			$this->adicionar_musica($musica_missa);
		}
	}
	
	public function get_tipo_missa() {
		return $this->tipo_missa;
	}
	
	public function set_tipo_missa($tipo_missa) {
		$this->tipo_missa = $tipo_missa;
		foreach (self::partes_da_missa($tipo_missa) as $parte_missa) {
			$this->musicas_missa[$parte_missa] = null;
		}
	}
	
	public function get_musica_missa($parte_missa) {
		if (key_exists($parte_missa, $this->musicas_missa)) {
			return $this->musicas_missa[$parte_missa];
		}
		return null;
	}
	
	public function get_letras_pra_folha() {
		$retorno = "";
		$separador = "";
		foreach ($this->musicas_missa as $parte_missa => $musica_missa) {
			if (isset($musica_missa)) {
				$retorno .= $separador."<u><b>".$this->label($parte_missa)."</b></u>\n\n".$musica_missa->get_musica()->get_letra();
				$separador = "\n\n";
			}
		}
		return $retorno;
	}
	
	public function get_musicas_pra_repertorio() {
		$retorno = "";
		$separador = "";
		$i = 1;
		foreach ($this->musicas_missa as $parte_missa => $musica_missa) {
			if (isset($musica_missa)) {
				$retorno .= $separador."$i. <b>".$musica_missa->get_musica()->get_titulo()."</b> (".$musica_missa->get_tom().")";
				$separador = "\n";
				$i++;
			}
		}
		return $retorno;
	}
}
	
?>